//引入jdk
const wxApi = require('./jweixin-1.6.0.js')
/**
 * http请求
 */
import {
	http
} from '@/utils/request/service.js'
/**
 * 初始化jdk
 */
export async function initConfit() {
	//配置config接口注入权限验证配置
	//从后台请求获取wxConfig
	let {
		jsapi
	} = await http.post('/anon/txmp/jsapi/config', {
		url: window.location.href
	})
	wxApi.config({
		...jsapi,
		jsApiList: [
			"chooseWXPay", "closeWindow"
		]
	})
}
/**
 * 微信支付
 */
export const wxPay = (data) => {
	return new Promise((resolve, reject) => {
		wxApi.ready(()=>{
			console.log(data);
			wxApi.chooseWXPay(
			{
				timestamp: data.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
				nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位
				package: data.packageValue, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
				signType: data.signType, // 签名方式，默认为‘SHA1‘，使用新版支付需传入‘MD5‘
				paySign: data.paySign, // 支付签名
				success: (res)=>{
					// 支付成功后的回调函数
					resolve({
						code: 'success',
						result: res
					});
				},
				//接口调用失败时执行的回调函数。
				fail:(res) => {
					// 支付成功后的回调函数
					resolve({
						code: 'fail',
						result: res
					});
				},
				//用户点击取消时的回调函数，仅部分有用户取消操作的api才会用到。
				cancel:(res)=>{
					// 支付成功后的回调函数
					resolve({
						code: 'cancel',
						result: res
					});
				}
			}
			);
		})
		wxApi.error((res)=>{
			reject(res)
			console.log("JsSdk-Error", res);
		});
	})
}
/**
 * 微信公众号关闭当前页面
 */
export const wxCloseWindow = () => {
	return new Promise((resolve, reject) => {
		wxApi.ready(()=>{
			wxApi.closeWindow({
				success: (res)=>{
					// 关闭成功
					resolve({
						code: 'success',
						result: res
					});
				},
				//接口调用失败时执行的回调函数。
				fail:(res) => {
					// 关闭失败
					resolve({
						code: 'fail',
						result: res
					});
				},
			});
		})
		wxApi.error((res)=>{
			reject(res)
			console.log("JsSdk-Error", res);
		});
	})
}
